package com.sheep.service;

import com.sheep.mbg.model.RbacAdmin;
import com.sheep.mbg.model.RbacPermission;
import org.springframework.security.core.userdetails.UserDetails;

import java.util.List;

public interface RbacAdminService {
    /**
     * 根据用户名获取后台管理员
     */
    RbacAdmin getAdminByUsername(String username);

    UserDetails loadUserByUsername(String username);

    /**
     * 注册功能
     */
    RbacAdmin register(RbacAdmin umsAdminParam);

    /**
     * 登录功能
     *
     * @param username 用户名
     * @param password 密码
     * @return 生成的JWT的token
     */
    String login(String username, String password);

    /**
     * 获取用户所有权限（包括角色权限和+-权限）
     */
    List<RbacPermission> getPermissionList(Long adminId);
}
